package com.example.demo.customer;

import com.example.demo.exception.ApiRequestException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.Collections;
import java.util.List;

@RequestMapping(path = "api/v2/customers")
@RestController
public class CustomerControllerV2 {

    private final CustomerService customerService;

            @Autowired
            public CustomerControllerV2(CustomerService customerService){
                this.customerService = customerService;
    }

            @GetMapping
            List<Customer> getCustomers(){
                return customerService.getCustomers();
            }

            @GetMapping(path = "{customerId}")
            Customer getCustomer(@PathVariable("customerId") Long id) {
                       return customerService.getCustomer(id);

            }

            @GetMapping(path = "{customerId}/exception")
            Customer getCustomerException(@PathVariable("customerId") Long id){
                throw new ApiRequestException(
                        "ApiRequestException for customer" + id
                );
            }



            @PostMapping
            void createNewCustomer(@Valid @RequestBody Customer customer){
                System.out.println("POST 请求...");
                System.out.println(customer);
            }

            @PutMapping
            void updateCustomer(@RequestBody Customer customer){
               System.out.println("UPDATE 请求");
               System.out.println(customer);
            }

            @DeleteMapping(path = "{customerId}")
            void deleteCustomer(@PathVariable("customerId") Long id){
               System.out.println("DELETE 请求，删除 Customer. 其ID为 " + id);
            }


            }


